#pragma once
#include "DXAMLCommon.h"


struct IPlatformUtilities
{
	virtual char * WideCharToChar(XUINT32 cstr, const XCHAR * pstr, XUINT32 * pcstr, char * pstrDest) = 0;
	virtual XCHAR * CharToWideChar(XUINT32 * cstr, const char * pstr) = 0;
	virtual XUINT32 * WideCharTo32Char(XUINT32, const XCHAR *) = 0;
	virtual XCHAR * WideChar32ToWideChar(XUINT32, const XUINT32 *) = 0;
	virtual XCHAR * Xstralloc(const XCHAR * sourceString, const XUINT32 sourceStringLen) = 0;
	virtual void Xstrfree(XCHAR * theString) = 0;
	virtual void * Xstrncpy(XCHAR * pTrg, const XCHAR * pSrc, XUINT32 cChar) = 0;
	virtual XUINT32 Xstrlen(const XCHAR * pString) = 0;
	virtual XINT32 Xstrncmpi(const XCHAR * pTrg, const XCHAR * pSrc, XUINT32 cChar) = 0;
	virtual XINT32 Xstrncmp(const XCHAR * pTrg, const XCHAR * pSrc, XUINT32 cChar) = 0;
	virtual void XFreeCharArray(char *) = 0;
	virtual HRESULT XGetInstalledVersion(XCHAR * * ppszInstalledVersion, XUINT32 * pcbInstalledVersion) = 0;
	virtual XUINT32 Xswprintf_s(XCHAR * pBuf, XUINT32 cchBuf, const XCHAR * pFormat, ...) = 0;
	virtual XUINT32 vXswprintf_s(XCHAR * pBuf, XUINT32 cchBuf, const XCHAR * pFormat, va_list args) = 0;
	virtual XBOOL IsUILanguageRTL() = 0;
	virtual XBOOL Is64bitInstalled() = 0;
};
